package com.sharer.last.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sharer.last.base.model.PageVO;
import com.sharer.last.model.dto.friend.FriendChangeDTO;
import com.sharer.last.model.dto.friend.FriendQueryDTO;
import com.sharer.last.model.po.FriendPO;
import com.sharer.last.model.vo.friend.FriendVO;

import java.util.List;

public interface FriendService extends IService<FriendPO> {

    /**
     * 根据昵称查询数据
     *
     * @param nickname 昵称
     * @return
     */
    FriendPO getByNickname(String nickname);

    /**
     * 查询所有友链
     *
     * @return
     */
    List<FriendVO> selectAllList();

    /**
     * 分页查询
     *
     * @param queryDTO
     * @return
     */
    PageVO<FriendVO> selectListByPage(FriendQueryDTO queryDTO);

    /**
     * 根据id查询数据
     *
     * @param id
     * @return
     */
    FriendVO findById(Long id);

    /**
     * 创建友链
     *
     * @param dto
     */
    void createFriend(FriendChangeDTO dto);

    /**
     * 更新友链
     *
     * @param dto
     */
    void updateFriend(FriendChangeDTO dto);

    /**
     * 更新友链访问次数
     *
     * @param id
     */
    void updateFriendViewsById(Long id);

    /**
     * 更新友链访问次数
     *
     * @param nickname 昵称
     */
    void updateViewsByNickname(String nickname);

    /**
     * 更新友链是否显示
     *
     * @param id
     * @param published
     */
    void updateFriendPublishedById(Long id, Integer published);

    /**
     * 根据id删除友链
     *
     * @param id
     */
    void removeFriendById(Long id);
}
